<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ArtTemplateTest</title>
</head>
<body>
    <h1>1.demo1</h1>
    <div id="content1"></div>
    <h1>2.template.helper(注册函数)</h1>
    <div id="content2"></div>
    <h1>3.demo3</h1>
    <div id="content3"></div>
    <h1>4.在javascript中存放模板</h1>
    <div id="content4"></div>
    <h1>5.不支持引入外部模板</h1>
    <div id="content5"></div>
    <script type="text/javascript" src="js/lib/template.js"></script>
    <script type="text/javascript" src="js/lib/jquery-2.2.1.min.js"></script>
    <script id="test1" type="text/html">
        {{if isAdmin}}

        <h1>{{title}}</h1>
        <ul>
            {{each list as value i}}
            <li>索引 {{i + 1}} ：{{value}}</li>
            {{/each}}
        </ul>

        {{/if}}
    </script>
    <script id="test2" type="text/html">
        {{time | dateFormat:'yyyy年 MM月 dd日 hh:mm:ss'}}
    </script>
    <script id="test3" type="text/html">
        <h1>{{title}}</h1>
        {{include 'list'}}
    </script>
    <script id="list" type="text/html">
        <ul>
            {{each list as value i}}
            <li>索引 {{i + 1}} ：{{value}}</li>
            {{/each}}
        </ul>
    </script>
    <script type="text/javascript">
        var data = {
            title: '基本例子',
            isAdmin: true,
            list: ['文艺', '博客', '摄影', '电影', '民谣', '旅行', '吉他']
        };
        var html = template('test1', data);
        document.getElementById('content1').innerHTML = html;
        /**
         * 对日期进行格式化，
         * @param date 要格式化的日期
         * @param format 进行格式化的模式字符串
         *     支持的模式字母有：
         *     y:年,
         *     M:年中的月份(1-12),
         *     d:月份中的天(1-31),
         *     h:小时(0-23),
         *     m:分(0-59),
         *     s:秒(0-59),
         *     S:毫秒(0-999),
         *     q:季度(1-4)
         * @return String
         * @author yanis.wang
         * @see	http://yaniswang.com/frontend/2013/02/16/dateformat-performance/
         */
        template.helper('dateFormat', function (date, format) {

            date = new Date(date);

            var map = {
                "M": date.getMonth() + 1, //月份
                "d": date.getDate(), //日
                "h": date.getHours(), //小时
                "m": date.getMinutes(), //分
                "s": date.getSeconds(), //秒
                "q": Math.floor((date.getMonth() + 3) / 3), //季度
                "S": date.getMilliseconds() //毫秒
            };
            format = format.replace(/([yMdhmsqS])+/g, function(all, t){
                var v = map[t];
                if(v !== undefined){
                    if(all.length > 1){
                        v = '0' + v;
                        v = v.substr(v.length-2);
                    }
                    return v;
                }
                else if(t === 'y'){
                    return (date.getFullYear() + '').substr(4 - all.length);
                }
                return all;
            });
            return format;
        });

        // --------

        data = {
            time: (new Date).toString(),
        };
        var html = template('test2', data);
        document.getElementById('content2').innerHTML = html;

        data = {
            title: '嵌入子模板',
            list: ['文艺', '博客', '摄影', '电影', '民谣', '旅行', '吉他']
        };
        var html = template('test3', data);
        document.getElementById('content3').innerHTML = html;

        var source = '<ul>'
                +    '{{each list as value i}}'
                +        '<li>索引 {{i + 1}} ：{{value}}</li>'
                +    '{{/each}}'
                + '</ul>';
        var render = template.compile(source);
        var html = render({
            list: ['摄影', '电影', '民谣', '旅行', '吉他']
        });
        document.getElementById('content4').innerHTML = html;
    </script>
</body>
</html>